<template><div><h2 id="安装-yii" tabindex="-1"><a class="header-anchor" href="#安装-yii"><span>安装 Yii</span></a></h2>
<p>你可以通过两种方式安装 Yii：使用 <a href="http://getcomposer.org/" target="_blank" rel="noopener noreferrer">Composer</a> 或下载一个归档文件。 推荐使用前者，这样只需执行一条简单的命令就可以安装新的 <a href="https://learnku.com/docs/yii-framework/2.0.x/extensions/12022" target="_blank" rel="noopener noreferrer">扩展</a> 或更新 Yii 了。</p>
<p>标准安装完Yii之后，框架和一个项目模板两者都下载并安装好了。 一个项目模板是实现了一些基本特性的一个可行的Yii项目，比如登录，联系表单等等。它的代码是以推荐的方式组织的。因此，它能够适合作为你项目的一个好的起点。</p>
<p>在本章节和以后的章节，我们将会介绍如何去安装 Yii 和所谓的 <em>基本的应用程序模板</em> 和如何去实现这个模板上的新特性。Yii 当然也提供了其它模板叫 <a href="https://learnku.com/docs/yii-framework/2.0.x/frame-structure/11994" target="_blank" rel="noopener noreferrer">高级的应用程序模板</a> ，它是更好应用于在一个团队开发环境中去开发多层级的应用程序。</p>
<blockquote>
<p>Info: 这个基本的应用程序模板是适合于开发 90% 的 Web 应用程序。 它不同于高级的应用程序模板主要地在如何使它们的代码是有组织的。 如果你是刚接触 Yii ，我们强烈建议你坚持使用简单并有足够的功能的基础的应用程序模板。</p>
</blockquote>
<h2 id="通过-composer-安装" tabindex="-1"><a class="header-anchor" href="#通过-composer-安装"><span>通过 Composer 安装</span></a></h2>
<h3 id="安装-composer" tabindex="-1"><a class="header-anchor" href="#安装-composer"><span>安装 Composer</span></a></h3>
<p>如果还没有安装 Composer，你可以按 <a href="https://getcomposer.org/download/" target="_blank" rel="noopener noreferrer">getcomposer.org</a> 中的方法安装。</p>
<p>在 Linux 和 Mac OS X 中可以运行如下命令：</p>
<div class="language-bash line-numbers-mode" data-highlighter="prismjs" data-ext="sh" data-title="sh"><pre v-pre class="language-bash"><code><span class="line"><span class="token function">curl</span> <span class="token parameter variable">-sS</span> https://getcomposer.org/installer <span class="token operator">|</span> php</span>
<span class="line"><span class="token function">mv</span> composer.phar /usr/local/bin/composer</span>
<span class="line"></span></code></pre>
<div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0"><div class="line-number"></div><div class="line-number"></div></div></div><p>在 Windows 中，你需要下载并运行 <a href="https://getcomposer.org/Composer-Setup.exe" target="_blank" rel="noopener noreferrer">Composer-Setup.exe</a> 。</p>
<p>如果遇到任何问题或者想更深入地学习 Composer， 请参考 <a href="https://getcomposer.org/doc/" target="_blank" rel="noopener noreferrer">Composer 文档</a>。 如果你已经安装有 Composer 请确保使用的是最新版本， 你可以用 <code v-pre>composer self-update</code> 命令更新 Composer 为最新版本。</p>
<p>在本指南中，所有 composer 命令都假定您已经完成 <a href="https://getcomposer.org/doc/00-intro.md#globally" target="_blank" rel="noopener noreferrer">composer 全局安装</a> ， 这样它可以作为 <code v-pre>composer</code> 命令。如果您在本地目录中使用 <code v-pre>composer.phar</code>， 则必须相应地调整示例命令。</p>
<p>如果您之前已安装 Composer，请确保使用最新版本。 您可以通过运行 <code v-pre>composer self-update</code> 来更新Composer。</p>
<blockquote>
<p>Note: 在安装 Yii 期间，Composer 需要从 Github API 请求很多信息。 请求的数量取决于您的应用程序所依赖的数量， 并可能大于 <strong>Github API 速率限制</strong>。如果达到此限制，Composer 可能会要求您提供 Github 登录凭据以获取 Github API 访问令牌。在快速连接上，您可能比 Composer 能够处理的时间早， 因此我们建议您在安装 Yii 之前配置访问令牌。 有关如何执行此操作的说明，请参阅 <a href="https://getcomposer.org/doc/articles/troubleshooting.md#api-rate-limit-and-oauth-tokens" target="_blank" rel="noopener noreferrer">Composer 关于 Github API tokens 的 文档</a> 。</p>
</blockquote>
<h3 id="安装-yii-基础应用模板" tabindex="-1"><a class="header-anchor" href="#安装-yii-基础应用模板"><span>安装 Yii 基础应用模板</span></a></h3>
<p>安装 Composer 后，您可以通过在 Web 可访问的文件夹下运行以下命令来安装 Yii 基础应用程序模板：</p>
<div class="language-bash line-numbers-mode" data-highlighter="prismjs" data-ext="sh" data-title="sh"><pre v-pre class="language-bash"><code><span class="line"><span class="token function">composer</span> create-project --prefer-dist yiisoft/yii2-app-basic basic</span>
<span class="line"></span></code></pre>
<div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0"><div class="line-number"></div></div></div><p>这将在一个名为 <code v-pre>basic</code> 的目录中安装Yii应用程序模板的最新稳定版本。 如果需要，您可以选择不同的目录名称。</p>
<blockquote>
<p>Info: 如果 <code v-pre>composer create-project</code> 命令失败，您也可以参考 <a href="https://getcomposer.org/doc/articles/troubleshooting.md" target="_blank" rel="noopener noreferrer">Composer 文档的疑难解答</a> 部分中的常见错误。修复错误后， 您可以通过在 <code v-pre>basic</code> 目录内运行 <code v-pre>composer update</code> 来恢复中止安装。</p>
</blockquote>
<blockquote>
<p>Tip: 如果你想安装 Yii 的最新开发版本，可以使用以下命令代替， 它添加了一个 <a href="https://getcomposer.org/doc/04-schema.md#minimum-stability" target="_blank" rel="noopener noreferrer">stability 选项</a>：</p>
<div class="language-bash line-numbers-mode" data-highlighter="prismjs" data-ext="sh" data-title="sh"><pre v-pre class="language-bash"><code><span class="line"><span class="token function">composer</span> create-project --prefer-dist <span class="token parameter variable">--stability</span><span class="token operator">=</span>dev yiisoft/yii2-app-basic basic</span>
<span class="line"></span></code></pre>
<div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0"><div class="line-number"></div></div></div><p>请注意，Yii的开发版本不应该用于生产，因为它可能会破坏您的运行代码。</p>
</blockquote>
<h2 id="通过归档文件安装-不推荐" tabindex="-1"><a class="header-anchor" href="#通过归档文件安装-不推荐"><span>通过归档文件安装（不推荐）</span></a></h2>
<p>通过归档文件安装 Yii 包括三个步骤：</p>
<ol>
<li>
<p>从 <a href="https://www.yiiframework.com/download/" target="_blank" rel="noopener noreferrer">yiiframework.com</a> 下载归档文件。</p>
</li>
<li>
<p>将下载的文件解压缩到 Web 访问的文件夹中。</p>
</li>
<li>
<p>修改 <code v-pre>config/web.php</code> 文件，给 <code v-pre>cookieValidationKey</code> 配置项 添加一个密钥（若你通过 Composer 安装，则此步骤会自动完成）：</p>
</li>
</ol>
<div class="language-php line-numbers-mode" data-highlighter="prismjs" data-ext="php" data-title="php"><pre v-pre class="language-php"><code><span class="line"><span class="token comment">// !!! 在下面插入一段密钥（若为空） - 以供 cookie validation 的需要</span></span>
<span class="line"><span class="token string single-quoted-string">'cookieValidationKey'</span> <span class="token operator">=></span> <span class="token string single-quoted-string">'在此处输入你的密钥'</span><span class="token punctuation">,</span></span>
<span class="line"></span></code></pre>
<div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0"><div class="line-number"></div><div class="line-number"></div></div></div><h2 id="其他安装方式" tabindex="-1"><a class="header-anchor" href="#其他安装方式"><span>其他安装方式</span></a></h2>
<p>上文介绍了两种安装 Yii 的方法， 安装的同时也会创建一个立即可用的 Web 应用程序。这个方法对大多数的大或者小的项目是一个不错的起点。如果你正好开始学习 Yii ，这是特别适合的。</p>
<p>但是其他的安装方式也存在：</p>
<ul>
<li>如果你只想安装核心框架，然后从零开始构建整个属于你自己的应用程序模版， 可以参考 <a href="https://learnku.com/docs/yii-framework/2.0.x/custom-template/11997#c3f360" target="_blank" rel="noopener noreferrer">从头构建自定义模版</a> 一节的介绍。</li>
<li>如果你要开发一个更复杂的应用，可以更好地适用于团队开发环境的，你可以考虑安装 <a href="https://learnku.com/docs/yii-framework/2.0.x/install/11993" target="_blank" rel="noopener noreferrer">高级应用模版</a>。</li>
</ul>
<h2 id="安装-assets" tabindex="-1"><a class="header-anchor" href="#安装-assets"><span>安装 Assets</span></a></h2>
<p>Yii依靠 <a href="http://bower.io/" target="_blank" rel="noopener noreferrer">Bower</a> 和/或 <a href="https://www.npmjs.com/" target="_blank" rel="noopener noreferrer">NPM</a> 软件包来安装 asset（CSS 和 JavaScript）库。 它使用Composer来获取这些库，允许 PHP 和 CSS/JavaScript 包版本同时解析。 这可以通过使用 <a href="https://asset-packagist.org/" target="_blank" rel="noopener noreferrer">asset-packagist.org</a> 或 <a href="https://github.com/fxpio/composer-asset-plugin" target="_blank" rel="noopener noreferrer">composer asset plugin</a> 来实现。 有关更多详细信息，请参阅 <a href="https://learnku.com/docs/yii-framework/2.0.x/front-end-assets/12021" target="_blank" rel="noopener noreferrer">Assets 文档</a>。</p>
<p>您可能希望通过本地 Bower/NPM 客户端管理您的 assets，使用 CDN 或完全避免 assets 的安装。 为了防止通过 Composer 安装 assets，请将以下几行添加到您的 <code v-pre>composer.json</code> 中：</p>
<div class="language-json line-numbers-mode" data-highlighter="prismjs" data-ext="json" data-title="json"><pre v-pre class="language-json"><code><span class="line"><span class="token property">"replace"</span><span class="token operator">:</span> <span class="token punctuation">{</span></span>
<span class="line">    <span class="token property">"bower-asset/jquery"</span><span class="token operator">:</span> <span class="token string">">=1.11.0"</span><span class="token punctuation">,</span></span>
<span class="line">    <span class="token property">"bower-asset/inputmask"</span><span class="token operator">:</span> <span class="token string">">=3.2.0"</span><span class="token punctuation">,</span></span>
<span class="line">    <span class="token property">"bower-asset/punycode"</span><span class="token operator">:</span> <span class="token string">">=1.3.0"</span><span class="token punctuation">,</span></span>
<span class="line">    <span class="token property">"bower-asset/yii2-pjax"</span><span class="token operator">:</span> <span class="token string">">=2.0.0"</span></span>
<span class="line"><span class="token punctuation">}</span><span class="token punctuation">,</span></span>
<span class="line"></span></code></pre>
<div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><blockquote>
<p>Note: 在通过 Composer 绕过 assets 安装的情况下，您负责 assets 的安装和解决版本冲突。 准备来自不同扩展名的 assets 文件之间的可能不一致。</p>
</blockquote>
<h2 id="验证安装的结果" tabindex="-1"><a class="header-anchor" href="#验证安装的结果"><span>验证安装的结果</span></a></h2>
<h3 id="内置-web-服务器运行应用" tabindex="-1"><a class="header-anchor" href="#内置-web-服务器运行应用"><span>内置 Web 服务器运行应用</span></a></h3>
<p>当安装完成之后， 可使用 <a href="https://www.php.net/manual/zh/features.commandline.webserver.php" target="_blank" rel="noopener noreferrer">内置 Web Server</a>，在项目 <code v-pre>web</code> 目录下可以通过下面的命令:</p>
<div class="language-bash line-numbers-mode" data-highlighter="prismjs" data-ext="sh" data-title="sh"><pre v-pre class="language-bash"><code><span class="line">php yii serve</span>
<span class="line"></span></code></pre>
<div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0"><div class="line-number"></div></div></div><blockquote>
<p>注意：默认情况下 Https-server 将监听 8080。可是如果这个端口已经使用或者你想通过这个方式运行多个应用程序，你可以指定使用哪些端口。 只加上 –port 参数：</p>
</blockquote>
<div class="language-bash line-numbers-mode" data-highlighter="prismjs" data-ext="sh" data-title="sh"><pre v-pre class="language-bash"><code><span class="line">php yii serve <span class="token parameter variable">--port</span><span class="token operator">=</span><span class="token number">8888</span></span>
<span class="line"></span></code></pre>
<div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0"><div class="line-number"></div></div></div><p>安装完成后，就可以使用浏览器通过如下 URL 访问刚安装完的 Yii 应用了：</p>
<div class="language-bash line-numbers-mode" data-highlighter="prismjs" data-ext="sh" data-title="sh"><pre v-pre class="language-bash"><code><span class="line">http://localhost:8080/</span>
<span class="line"></span></code></pre>
<div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0"><div class="line-number"></div></div></div><p>您应该可以在浏览器中看到如上图所示的 “Congratulations!” 页面，如下图所示：</p>
<p><img src="https://cdn.learnku.com/uploads/images/202201/29/93088/QXHt42bk01.png!large" alt="Yii 安装成功"></p>
<p>如上图所示，一个安装完的基本应用模板包含四页：</p>
<ul>
<li>“首页”，当你访问 <code v-pre>http://localhost:8080/</code> 时显示</li>
<li>“About”页</li>
<li>“Contact”页，显示一个联系表单，允许终端用户通过 Email 联系你</li>
<li>“Login”页，显示一个登录表单，用来验证终端用户。试着用“admin/admin”登录，你可以看到当前是登录状态，已经可以“退出登录”了</li>
</ul>
<p>这些页面使用同一个头部和尾部。头部包含了一个可以在不同页面间切换的导航栏。</p>
<p>在浏览器底部可以看到一个工具栏。这是 Yii 提供的很有用的 <a href="https://github.com/yiisoft/yii2/blob/master/docs/guide-zh-CN/tool-debugger.md" target="_blank" rel="noopener noreferrer">调试工具</a>， 可以记录并显示大量的调试信息，例如日志信息，响应状态，数据库查询等等。</p>
<p>除了 web 应用程序，还有一个控制台脚本叫 <code v-pre>yii</code> ,它位于应用程序根目录。 它可以用于程序的后台运行和维护任务，在 <a href="https://github.com/yiisoft/yii2/blob/master/docs/guide-zh-CN/tutorial-console.md" target="_blank" rel="noopener noreferrer">控制台应用程序章节</a> 中描述。</p>
<h3 id="失败处理" tabindex="-1"><a class="header-anchor" href="#失败处理"><span>失败处理</span></a></h3>
<p>如果没有得到上图访问的页面，请通过以下任意一种方式，检查当前 PHP 环境是否满足 Yii 最基本需求：</p>
<ul>
<li>
<p>复制 项目根目录下的 <code v-pre>/requirements.php</code> 到 <code v-pre>/web/requirements.php</code>，然后通过浏览器访问 URL <code v-pre>http://localhost/requirements.php</code></p>
</li>
<li>
<p>执行如下命令：</p>
<div class="language-bash line-numbers-mode" data-highlighter="prismjs" data-ext="sh" data-title="sh"><pre v-pre class="language-bash"><code><span class="line"><span class="token builtin class-name">cd</span> basic</span>
<span class="line">php requirements.php</span>
<span class="line"></span></code></pre>
<div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0"><div class="line-number"></div><div class="line-number"></div></div></div></li>
</ul>
<p>你需要配置好 PHP 安装环境，使其符合 Yii 的最小需求。主要是需要 PHP 5.4 或以上版本。 如果应用需要用到数据库，那还要安装 <a href="https://www.php.net/manual/zh/pdo.installation.php" target="_blank" rel="noopener noreferrer">PDO PHP 扩展</a> 和相应的数据库驱动（例如访问 MySQL 数据库所需的 <code v-pre>pdo_mysql</code>）。</p>
<blockquote>
<p>💖喜欢本文档的，欢迎点赞、收藏、留言或转发，谢谢支持！<br>
作者邮箱：zhuzixian520@126.com，github地址：<a href="https://github.com/zhuzixian520" target="_blank" rel="noopener noreferrer">github.com/zhuzixian520</a></p>
</blockquote>
</div></template>


